FTP服务器

推荐列表 站点导航

当前位置:首页 > 服务器技术 > FTP服务器 >

ftp自动登录服务器

来源:互联网  作者:网友投稿  发布时间:2021-01-10 06:49
在看shell编程,然后有一节讲自动登录ftp服务器,所以对ftp一探究竟。我使用的是ubuntu1、将自己的电脑做成ftp服务器...

在看shell编程,然后有一节讲自动登录ftp服务器,所以对ftp一探究竟。

我使用的是ubuntu

1、将自己的电脑做成ftp服务器(root用户执行)

下载安装vsftd:apt-get install vsftpd

安装完成之后,使用service vsftpd status查看vstfpd服务状态

修改配置文件:/etc/vsftpd.conf

listen=YES#服务器监听

anonymous_enable=YES#匿名访问允许

#这句话的意思是允许使用帐号为anonymous,密码为空登录

local_enable=YES # 本地主机访问允许

#共享目录
local_root=/srv/ftp

write_enable=YES # 写允许

chroot_local_user=YES

#anon_upload_enable=YES
# 匿名上传允许,默认是NO,嫌麻烦的可以开起来。出了问题我不负责~
#anon_mkdir_write_enable=YES # 匿名创建文件夹允许
dirmessage_enable=YES # 进入文件夹允许
xferlog_enable=YES # ftp 日志记录允许
connect_from_port_20=YES # 允许使用20号端口作为数据传送的端口
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

具体含义:?id=11656

设置相关目录

安装完毕后,/srv下会增加一个ftp目录。同时系统会增加一个名为ftp的用户组,可以用~$ sudo cat /etc/shadow 查看, 如 ftp:*:14993:0:99999:7:::。我们在/srv/ftp目录下创建两个分别名为upload和download的目录,分别用于上传和下载。接下来我们为刚才创建的几个目录设置权限,如下:


权限 /srv/ftp /srv/ftp/upload /srv/ftp/download


用户组(ftp) 读 读写 读


其他用户 读 读写 读


执行命令:


~$ sudo chmod 755 /srv/ftp


~$ sudo chmod 777 /srv/ftp/upload


~$ sudo chmod 755 /srv/ftp/download


如此,一方面我们允许了用户组ftp访问/srv/ftp (匿名访问);一方面赋予了用户组ftp对/srv/ftp/upload的写权利,因此网络上的用户可以方便地上传文件,但注意,当他们上传后,上传的文件只有root对这些文件拥有权限,也就是说这个目录仅能用于上传,无法下载其中的文件;此外赋予了用户组ftp对 /home/ftp/download的读权利,同时我们拷贝进该目录下的文件对于用户组而言通常都有读权利,因此网络上的用户从此目录下能且仅能下载文件。从而满足了我们预先的要求。

设置用户目录

如果你设置了匿名用户也可以登录上传的话~这个可以省了~
(1) 增加组 sudo groupadd ftpgroup

(2 )修改vsftpd.conf

~$ sudo gedit /etc/vsftpd.conf
   将底下三行

#限制用户只能在家目录里

chroot_local_user=YES
   #chroot_list_enable=YES
   # (default follows)
   #chroot_list_file=/etc/vsftpd/chroot_list
   改为
   chroot_list_enable=YES
   # (default follows)
   chroot_list_file=/etc/vsftpd/chroot_list


(3) 增加用户ftpuser并设置其目录为/srv/ftp/upload
sudo useradd -g ftpgroup -d /srv/ftp -M ftpuser

(注:G:用户所在的组 d:表示创建用户的自己目录的位置给予指定

M:不建立默认的自家目录,也就是说在/home下没有自己的目录)

(4 )设置用户口令 passwd ftpuser
(5) 编辑chroot_list文件:
sudo gedit /etc/vsftpd.chroot_list
内容为ftp用户名,每个用户占一行,如:
ftpuser

(6 )重新启动vsftpd:
sudo service vsftpd start

参考

注意:ftp用户,是不能删除的

一、设置成功后,就可以使用本地系统里的帐号进行访问ftp了

验证上传,下载,OK了

二、在用的过程中,有各种各样的问题,搜答案的时候看到了下面的一个命令

adduser -g ftp -s /sbin/nologin mmc

然后使用的时候发现不能登录ftp,不知道为什么

由于只是为了学习自动登录ftp,现在可以进行下一步实验,所以没再去看虚拟用户,有兴趣的兄弟可以取看看

三、实例

1、自动上传下载文件

#!/usr/bin/expect -f #注意这个开头,使用的是/usr/bin/expect -f 而不是/bin/bash,写习惯了也就不注意了 #echo "Please input ip: " #read ip #echo "Please input filename: " #read filename set ip [ lindex $argv 0 ] set filename [ lindex $argv 1 ] set savepath [ lindex $argv 2] spawn ftp $ip expect "Name*" #登录用户 send "username" send " " #登录用户的密码 expect "Password*" send "password" send " " expect "ftp>*" #指定所要下载的文件路径和保存在本地的文件路径 send "get $filename $savepath" send " " #下面的提示信息也没有显示,不知道为什么 expect { "*Failed*" { send_user "Download failed ";send "quit "} "*Send*" {send_user "Download ok "; send "quit "} } #这个或许也可以不写。 expect eof 不能使用"."来执行这个文件,需要将其属性设置为可执行,

最终实验目的达到:

1、测试ftp,并能够下载文件

2、体会expect编程,使工作自动化

2、自动备份文件

需要在家目录中创建一个文件夹,权限为777,不能直接在家目录里上传,否则提示553 Could not create file.
/srv/ftp# mkdir upload
/srv/ftp# chmod 777 upload

#!/usr/bin/expect -f set ip [ lindex $argv 0 ] set filename [ lindex $argv 1] set backuppath [lindex $argv 2] spawn ftp $ip expect "Name*" send "liyongchao" send " " expect "Password:*" send "liyongchao" send " " expect "ftp>*" send "put $filename $backuppath" send " " expect { "*Failed*" {send_user "Backup failed! ";send "quit "} "*Transfer complete*" {send_user "Backup seccess ";send "quit "} }
注意换行符" "

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/server/ftp/{12258.shtml

最新文章
Linux联接vsftpd:500OOPS:vsf Linux联接vsftpd:500OOPS:vsf

时间:2021-01-10

TCP/IP详解卷1:协议第1章 TCP/IP详解卷1:协议第1章

时间:2021-01-10

ftp连接虚拟机linux ftp连接虚拟机linux

时间:2021-01-10

FTP 服务器关于权限的问题 FTP 服务器关于权限的问题

时间:2020-12-29

Serv-U 8.0 服务器中文乱码问 Serv-U 8.0 服务器中文乱码问

时间:2020-12-29

浅谈FTP服务器架设的两种 浅谈FTP服务器架设的两种

时间:2020-12-29

FTP 常用命令 使用说明 FTP 常用命令 使用说明

时间:2020-12-29

win7下如何搭建ftp服务器 win7下如何搭建ftp服务器

时间:2020-12-28

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

ftp自动登录服务器

2021-01-10 编辑:网友投稿

在看shell编程,然后有一节讲自动登录ftp服务器,所以对ftp一探究竟。

我使用的是ubuntu

1、将自己的电脑做成ftp服务器(root用户执行)

下载安装vsftd:apt-get install vsftpd

安装完成之后,使用service vsftpd status查看vstfpd服务状态

修改配置文件:/etc/vsftpd.conf

listen=YES#服务器监听

anonymous_enable=YES#匿名访问允许

#这句话的意思是允许使用帐号为anonymous,密码为空登录

local_enable=YES # 本地主机访问允许

#共享目录
local_root=/srv/ftp

write_enable=YES # 写允许

chroot_local_user=YES

#anon_upload_enable=YES
# 匿名上传允许,默认是NO,嫌麻烦的可以开起来。出了问题我不负责~
#anon_mkdir_write_enable=YES # 匿名创建文件夹允许
dirmessage_enable=YES # 进入文件夹允许
xferlog_enable=YES # ftp 日志记录允许
connect_from_port_20=YES # 允许使用20号端口作为数据传送的端口
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

具体含义:?id=11656

设置相关目录

安装完毕后,/srv下会增加一个ftp目录。同时系统会增加一个名为ftp的用户组,可以用~$ sudo cat /etc/shadow 查看, 如 ftp:*:14993:0:99999:7:::。我们在/srv/ftp目录下创建两个分别名为upload和download的目录,分别用于上传和下载。接下来我们为刚才创建的几个目录设置权限,如下:


权限 /srv/ftp /srv/ftp/upload /srv/ftp/download


用户组(ftp) 读 读写 读


其他用户 读 读写 读


执行命令:


~$ sudo chmod 755 /srv/ftp


~$ sudo chmod 777 /srv/ftp/upload


~$ sudo chmod 755 /srv/ftp/download


如此,一方面我们允许了用户组ftp访问/srv/ftp (匿名访问);一方面赋予了用户组ftp对/srv/ftp/upload的写权利,因此网络上的用户可以方便地上传文件,但注意,当他们上传后,上传的文件只有root对这些文件拥有权限,也就是说这个目录仅能用于上传,无法下载其中的文件;此外赋予了用户组ftp对 /home/ftp/download的读权利,同时我们拷贝进该目录下的文件对于用户组而言通常都有读权利,因此网络上的用户从此目录下能且仅能下载文件。从而满足了我们预先的要求。

设置用户目录

如果你设置了匿名用户也可以登录上传的话~这个可以省了~
(1) 增加组 sudo groupadd ftpgroup

(2 )修改vsftpd.conf

~$ sudo gedit /etc/vsftpd.conf
   将底下三行

#限制用户只能在家目录里

chroot_local_user=YES
   #chroot_list_enable=YES
   # (default follows)
   #chroot_list_file=/etc/vsftpd/chroot_list
   改为
   chroot_list_enable=YES
   # (default follows)
   chroot_list_file=/etc/vsftpd/chroot_list


(3) 增加用户ftpuser并设置其目录为/srv/ftp/upload
sudo useradd -g ftpgroup -d /srv/ftp -M ftpuser

(注:G:用户所在的组 d:表示创建用户的自己目录的位置给予指定

M:不建立默认的自家目录,也就是说在/home下没有自己的目录)

(4 )设置用户口令 passwd ftpuser
(5) 编辑chroot_list文件:
sudo gedit /etc/vsftpd.chroot_list
内容为ftp用户名,每个用户占一行,如:
ftpuser

(6 )重新启动vsftpd:
sudo service vsftpd start

参考

注意:ftp用户,是不能删除的

一、设置成功后,就可以使用本地系统里的帐号进行访问ftp了

验证上传,下载,OK了

二、在用的过程中,有各种各样的问题,搜答案的时候看到了下面的一个命令

adduser -g ftp -s /sbin/nologin mmc

然后使用的时候发现不能登录ftp,不知道为什么

由于只是为了学习自动登录ftp,现在可以进行下一步实验,所以没再去看虚拟用户,有兴趣的兄弟可以取看看

三、实例

1、自动上传下载文件

#!/usr/bin/expect -f #注意这个开头,使用的是/usr/bin/expect -f 而不是/bin/bash,写习惯了也就不注意了 #echo "Please input ip: " #read ip #echo "Please input filename: " #read filename set ip [ lindex $argv 0 ] set filename [ lindex $argv 1 ] set savepath [ lindex $argv 2] spawn ftp $ip expect "Name*" #登录用户 send "username" send " " #登录用户的密码 expect "Password*" send "password" send " " expect "ftp>*" #指定所要下载的文件路径和保存在本地的文件路径 send "get $filename $savepath" send " " #下面的提示信息也没有显示,不知道为什么 expect { "*Failed*" { send_user "Download failed ";send "quit "} "*Send*" {send_user "Download ok "; send "quit "} } #这个或许也可以不写。 expect eof 不能使用"."来执行这个文件,需要将其属性设置为可执行,

最终实验目的达到:

1、测试ftp,并能够下载文件

2、体会expect编程,使工作自动化

2、自动备份文件

需要在家目录中创建一个文件夹,权限为777,不能直接在家目录里上传,否则提示553 Could not create file.
/srv/ftp# mkdir upload
/srv/ftp# chmod 777 upload

#!/usr/bin/expect -f set ip [ lindex $argv 0 ] set filename [ lindex $argv 1] set backuppath [lindex $argv 2] spawn ftp $ip expect "Name*" send "liyongchao" send " " expect "Password:*" send "liyongchao" send " " expect "ftp>*" send "put $filename $backuppath" send " " expect { "*Failed*" {send_user "Backup failed! ";send "quit "} "*Transfer complete*" {send_user "Backup seccess ";send "quit "} }
注意换行符" "

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/server/ftp/{12258.shtml

相关文章

风云图片

推荐阅读

返回FTP服务器频道首页